#include <stm32f10x.h>
#include <stdbool.h>

void delay_ms(int ms)
{
    int i = 0;
    while (ms--)
    {
        for (i = 0; i < 1000; i++)
            ;
    }
}

int main()
{

    GPIO_InitTypeDef def;

    def.GPIO_Mode = GPIO_Mode_Out_PP;
    def.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
    def.GPIO_Speed = GPIO_Speed_50MHz;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_Init(GPIOA, &def);

    GPIO_Write(GPIOA, 0);
    // GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);

    while (true)
    {
        // GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);
        // delay_ms(15000);
        // GPIO_Write(GPIOA, 0x1);
        GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_SET);
        delay_ms(15000);
        GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);
        // GPIO_Write(GPIOA, 0x2);
        GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_SET);
        delay_ms(15000);
        GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_RESET);
        // GPIO_Write(GPIOA, 0x4);
        // delay_ms(15000);
        // GPIO_Write(GPIOA, 0x8);
        GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_SET);
        delay_ms(15000);
        GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_RESET);
    }
    return 0;
}
